News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Suggestion/possibility: How to do ROM hacks on any console thread  (Read 2916 times)

FAST6191

  • Hero Member
  • *****
  • Posts: 2626
    • View Profile
I do not know if this should be here or in site discussions but I am going with newcomers for the time being.
Over the last few months I have seen a few threads where users, new and otherwise, ask to hack all the weird and wonderful consoles that are out there. Most people around here seem to focus on the NES and SNES which is no bad thing, add in GBA, DS and megadrive/genesis and you are probably up around 98% of the people here's main consoles. I will leave speculation of why this is for another day.

Obviously those that know what goes will do the obvious thing of find out if there is a filesystem/ROM format for a console, find hardware specs for a console, find emulator (hopefully with debugging) for a console and find tile/texture viewer for the console (though typical things are generic enough/programmable enough that you can usually avoid having too many issues here).

However those that might not have hacked much before tend to see all the very clear delineation between consoles in docs, discussions and whatever else and assume it means more than it does.

The would be thread would be the typical forum trap thread ([something the forum is against] *click* "did you not read the rules?" sort of thing) though with info on a handful of consoles. Also a warning saying that there are fewer tools and less well developed knowledge of the systems and their programs so you may well end up having a considerably harder time of things.

Pennywise

  • Hero Member
  • *****
  • Posts: 2257
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: Suggestion/possibility: How to do ROM hacks on any console thread
« Reply #1 on: July 01, 2014, 04:32:21 pm »
I would be interesting contributing to such a section whether it be part of the getting started section or a stickied thread.

BlackDog61

  • Hero Member
  • *****
  • Posts: 784
    • View Profile
    • Super Robot Wars A Portable translation thread
Re: Suggestion/possibility: How to do ROM hacks on any console thread
« Reply #2 on: July 01, 2014, 05:03:42 pm »
How do you want to proceed? I didn't quite get that from the opening statement.  8)
Are we to discuss ways to get info on several not-so-well-known consoles?
Or concrete ways that apply to most of them? (That would sound like a duplication of your excellent guide, Fast).
Could you be more specific on the topic at hand?

FAST6191

  • Hero Member
  • *****
  • Posts: 2626
    • View Profile
Re: Suggestion/possibility: How to do ROM hacks on any console thread
« Reply #3 on: July 01, 2014, 09:48:17 pm »
I was thinking more
Ooh, I have a sudden desire to hack Silent scope 2

http://www.system16.com/hardware.php?id=583 says it uses the Konami Hornet hardware. It also gives a nice listing of the chips it has, for a more general device I would start there but if it is a popular home console then there are probably better options, if it is a less common one then best bet is probably MAME/MESS or one of that crown

Finding some specifications. Funnily enough mame comes through
http://mamedev.org/source/src/mame/drivers/hornet.c.html
The comments at the start contain a bit of good info. Doing another search on the CPU though gives me
http://i.want.to.surf.free.fr/NCD/HTML/403gaum.pdf
I probably should not have picked an example that uses 3d hardware, however it says it uses 3dfx and that was a very popular (as at the time it was what directX and opengl are today, though 3d was an awful lot less popular back then). A bit of general background is probably in order then, 3dfx programming nets http://www.falconfly.de/reference.htm

Anyway that is getting off topic, the cartridge is a Jamma+ apparently and http://www.jammaboards.com/jcenter_jammaFAQ.html has a bit more on that. General stuff is nice but it seems the game is already known and detailed in the mame source
Spoiler:
Code: [Select]
MAME license http://www.mamedev.org/legal.html

 1398  ROM_START(sscope2)
 1399      ROM_REGION32_BE(0x400000, "user1", 0)   /* PowerPC program */
 1400      ROM_LOAD16_WORD_SWAP("931d01.bin", 0x200000, 0x200000, CRC(4065fde6) SHA1(84f2dedc3e8f61651b22c0a21433a64993e1b9e2) )
 1401      ROM_RELOAD(0x000000, 0x200000)
 1402 
 1403      ROM_REGION32_BE(0x800000, "user2", 0)   /* Data roms */
 1404      ROM_LOAD32_WORD_SWAP("931a04.bin", 0x000000, 0x200000, CRC(4f5917e6) SHA1(a63a107f1d6d9756e4ab0965d72ea446f0692814) )
 1405 
 1406      ROM_REGION32_BE(0x800000, "user3", 0)   /* Comm board roms */
 1407      ROM_LOAD("931a19.bin", 0x000000, 0x400000, CRC(8b25a6f1) SHA1(41f9c2046a6aae1e9f5f3ffa3e0ffb15eba46211) )
 1408      ROM_LOAD("931a20.bin", 0x400000, 0x400000, CRC(ecf665f6) SHA1(5a73e87435560a7bb2d0f9be7fba12254b18708d) )
 1409 
 1410      ROM_REGION(0x800000, "user5", ROMREGION_ERASE00)    /* CG Board texture roms */
 1411 
 1412      ROM_REGION(0x80000, "audiocpu", 0)      /* 68K Program */
 1413      ROM_LOAD16_WORD_SWAP("931a08.bin", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) )
 1414 
 1415      ROM_REGION(0xc00000, "rfsnd", 0)        /* PCM sample roms */
 1416      ROM_LOAD( "931a09.bin",   0x000000, 0x400000, CRC(694c354c) SHA1(42f54254a5959e1b341f2801f1ad032c4ed6f329) )
 1417      ROM_LOAD( "931a10.bin",   0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
 1418      ROM_LOAD( "931a11.bin",   0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
 1419 
 1420      ROM_REGION(0x2000, "m48t58",0)
 1421      ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(d4e69d7a) SHA1(1e29eecf4886e5e098a388dedd5f3901c2bb65e5) )
 1422 
 1423      ROM_REGION(0x8, "lan_serial_id", 0)     /* LAN Board DS2401 */
 1424      ROM_LOAD( "ds2401.8b", 0x000000, 0x000008, NO_DUMP )
 1425 
 1426      ROM_REGION(0x80, "lan_eeprom", 0)       /* LAN Board AT93C46 */
 1427      ROM_LOAD( "at93c46.16g", 0x000000, 0x000080, NO_DUMP )

I knew none of that (or at least could not recall any of it) before that little thought exercise, likewise it is overly specific and beyond that the hornet hardware appears to have 6 games it can play (though said 6 include a gradius game, both silent scope arcade titles and some other generally notable games). About the worst that happened to me in that was 3dfx overview was not as good a search term as 3dfx programming.

From what I have seen the pattern of thought above is not one shared by newer ROM hackers, whether this is the same line of thought that leads to the bit where hex editors are magic or not I do not know. I was just thinking a sticky or section maybe in the getting started part saying "You can do a ROM hack for anything that you can emulate/run custom code on, indeed it is actually quite simple to get started. Do note that blazing a trail may see there be few tools and people to help you with specifics and quirks though."

VicVergil

  • Hero Member
  • *****
  • Posts: 716
    • View Profile
Re: Suggestion/possibility: How to do ROM hacks on any console thread
« Reply #4 on: July 05, 2014, 10:53:57 am »
If it's written like the GBA/DS Ultimate romhacking guide (which was what got me in the hobby in the first place back in 2010) with sections like "tile edition/hex editors/table construction/pointers for dummies" and PS1/PS2-specific stuff about the CD file system, TIM format, and the like, that would be wonderful.
Adding a short assembly introduction (how to nop stuff to get a 8x16 font) would be the icing on the cake.

RetroHelix

  • Full Member
  • ***
  • Posts: 147
    • View Profile
Re: Suggestion/possibility: How to do ROM hacks on any console thread
« Reply #5 on: July 05, 2014, 11:16:32 am »
If someone asks question like "How do I hack game x on console x", he just lacks the basic understanding of... everything related to hacking/romhacking. Some basics are sufficient. This message must be clear.
Nonetheless I would like to see such a thread/section.